/* == MATH CONFIGURE =============================================== */

#define FPOW2_FBITS        27 // Number of fractional bits (1...28)
#define FPOW2_LIMIT         8 // Limit accuracy to n fractional bits (1...FPOW2_FBITS-1)

#define SINE_BITS           7 // Sine quality (2..14) vs. memory tradeoff
#define SINE_USE_TABLE      1 // Use pre-computed ROM table (vs. generate in RAM)
#define SINE_PRINTOUT       0 // Write sine table to screen (PC only)

// IMPORTANT: Maximum FFT size is 1 << (SINE_BITS + 2)

/* == WAVETABLE CONFIGURE ========================================== */

#define WAVE_BITS           9 // Wavetable fidelity (7,9,11,13) vs. memory tradeoff
#define WAVE_HQ_INTERPOLATE 1 // High quality interpolation in waveform sampler
#define WAVE_HQ_MIPMAPS     1 // Use IFFT (vs. filtering) to generate mip maps

/* == EFFECTS CONFIGURE ============================================ */

#define FOLD_BITS           6 // Depth of wavefolder

/* == GLOBAL GOODIES =============================================== */

#include "intrinsics.h"
#include "fpmath.h"
#include "wavetable.h"
#include "fft.h"
